package dynamicproxy.jdkproxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class ProxyFacoty {
	
	//维护一个目标对象
	private Object target;
	public ProxyFacoty(Object target) {
		this.target = target;
	}
	
	//给目标对象生成一个代理对象
	public Object getProxyInstance() {
			return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() {
				
				@Override
				public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
					// TODO Auto-generated method stub
					 System.out.println("开始事务2");
                     //执行目标对象方法
                     Object returnValue = method.invoke(target, args);
                     System.out.println("提交事务2");
                     return returnValue;
				}
			});
	}
	
}
